package com.example.demo.service;

import com.example.demo.dao.EmpInfoMapper;
import com.example.demo.entity.EmpInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


/**
 * @ClassName EmpInfoServiceImpl
 * @Author bsy
 * @Description T
 * <p>
 * 不带事务的方法调用该类中带事务的方法，不会回滚。
 * 因为spring的回滚是用过代理模式生成的，
 * 如果是一个不带事务的方法调用该类的带事务的方法，直接通过 this.xxx() 调用，而不生成代理事务，所以事务不起作用
 * @Date 2022/8/16 22:37
 * @Version 1.0
 */
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class EmpInfoServiceImpl {

    @Autowired
    EmpInfoMapper empInfoMapper;

    public int insertSelective(EmpInfo record) {
        return empInfoMapper.insertSelective(record);
    }

    //@Transactional
    public int updateRecod(EmpInfo record) {
        return empInfoMapper.updateByPrimaryKeySelective(record);
    }

    //@Transactional
    public void insert(EmpInfo record) throws Exception {
        try {
            int i=1/0;
            empInfoMapper.insertSelective(record);
        } catch (Exception e) {
            log.error("添加员工异常:{}", e.fillInStackTrace());
            throw new Exception("添加员工异常:" + e.getMessage());
        }

    }


}
